local desc = [[
# 立直麻将规则

## 1. 牌具与准备
- **麻将牌**：使用136张标准牌（万子、筒子、索子各36张，其中有一张五万、一张五条、一张五筒为赤宝牌，字牌28张），不含花牌。
- **座位决定**：通过掷骰或翻牌（东南西北）随机确定初始座位，之后依局数轮换。
- **起家与庄家**：东家为初始庄家，连庄时继续担任庄家。
- **初始点数**：每人25000点。

## 2. 行牌流程
- **配牌**：每人初始摸13张牌，庄家多摸1张（共14张）。
- **摸打回合**：从庄家开始，顺时针摸一张牌并打出一张牌，维持13张手牌（庄家14张时需打出）。
- **鸣牌**：允许吃（上家打出的牌组成顺子）、碰（任何家打出的牌组成刻子）、杠（任何家打出的牌或自摸组成杠子），鸣牌后需亮出对应牌组。

## 3. 立直条件与宣告
- **立直条件**：
  - 手牌为门前清（无鸣牌）。
  - 听牌状态（差一张牌和牌）。
  - 支付1000点棒作为立直供托（置于场中）。
- **立直宣告**：打牌时宣布“立直”，同时横置打出的牌（表示立直宣言牌）。此后不可换牌（摸打必须打出所摸牌），直至和牌或流局。

## 4. 和牌方式
- **自摸**：摸到所听牌后宣布“自摸”，三家支付点数。
- **荣和**：他人打出所听牌时宣布“和”，由放铳者支付点数。
- **特殊和牌**：
  - **抢杠**：他人加杠时，若杠牌正是所听牌，可抢杠和牌（视为荣和）。
  - **岭上开花**：开杠后摸岭上牌和牌（视为自摸）。
  - **海底捞月**：流局前最后一张自摸和牌。
  - **河底捞鱼**：流局前最后一张他人打出牌荣和。

## 5. 和牌要求与牌型
- **基本要求**：
  - 手牌必须组成4个面子（顺子、刻子或杠子）加1对雀头。
  - 至少有1番（否则不能和牌，除特殊规则如“食断”）。
- **常见役种**：
  - **一番役**：立直、一发、门前清自摸、断幺九、平和、一杯口、役牌（风牌、三元牌）。
  - **多番役**：混一色（2番）、清一色（5-6番）、混老头（2番）、七对子（2番）、对对和（2番）、三色同顺（2番）、三色同刻（2番）、三暗刻（2番）、小三元（2番）、混全带幺九（2番）等。
  - **役满役**：天和、地和、大三元、四暗刻、国士无双、九莲宝灯、绿一色等（通常计为满贯倍数）。

## 6. 杠牌规则
- **明杠**：鸣牌形成杠（需立即亮出）。
- **暗杠**：自摸四张相同牌（需亮出但保留背面朝上）。
- **加杠**：已碰刻子后自摸第四张（需亮出追加牌）。
- **杠牌后续**：杠后摸岭上牌（王牌最后一张），并需打出牌。每杠需翻里宝牌指示牌（增加潜在宝牌）。

## 7. 宝牌规则
- **表宝牌**：开局翻指示牌（王牌第3墩），后一张为宝牌（如指示牌为3万，则4万为宝牌）。
- **里宝牌**：立直和牌后翻开局指示牌下方牌（仅立直和牌者适用）。
- **杠宝牌**：每开一杠翻追加指示牌（王牌第6、9、12墩）。
- **宝牌计算**：每张宝牌增加一番，不计入起和番数。

## 8. 流局处理
- **荒牌流局**：牌墙仅剩王牌（14张）未和牌。
- **九种九牌**：配牌后手牌含9种以上幺九牌，可立即宣告流局（可选）。
- **四风连打**：第一轮四家打出相同风牌。
- **四家立直**：全部玩家立直后流局。
- **三家和了**：同一打牌被三家同时和牌（罕见）。
- **流局罚符**：无听牌者支付听牌者点数（通常3000点，庄家多付）。

## 9. 点数计算
- **基本点计算**：
  - 符数 × 2^(2+番数) ，向上取整至十位。
  - 符数来源：底符20符（副底）+ 面子符（刻杠、雀头、听牌形式等）。
- **支付规则**：
  - **荣和**：放铳者支付基本点×4（闲家）或×6（庄家）。
  - **自摸**：闲家支付基本点×1，庄家支付基本点×2（闲家间平分）。
- **满贯以上**：
  - 满贯（5番或2000/4000点以上）：固定点数（闲家8000点，庄家12000点）。
  - 跳满（6-7番）、倍满（8-10番）、三倍满（11-12番）、役满（13番以上）按倍数递增。

## 10. 特殊规则
- **振听**：
  - 同巡振听：放过可和牌后，本巡内只能自摸。
  - 立直后振听：立直后放过可和牌，后续只能自摸。
  - 永久振听：手牌含已打过的和牌牌张（只能自摸）。
- **途中流局**：九种九牌、四风连打等可中断对局。
- **连庄与轮庄**：
  - 庄家和牌或流局听牌则连庄（本场数+1）。
  - 闲家和牌或流局庄家未听牌则轮庄。
- **本场费**：连庄时每本场300点，由和牌者获得（流局时庄家获得）。

## 11. 终局与排名
- **结束条件**：
  - 预定位数完成。
  - 有玩家点数归零（飞人）。
- **排名依据**：按最终点数排序，同分时按和牌次数、击飞顺序等判定。
]]

local mode = fk.CreateGameMode {
  name = "riichi_mahjong",
  minPlayer = 4,
  maxPlayer = 4,
}
mode.game_name = "riichi_mahjong"

Fk:loadTranslationTable {
  ["riichi_mahjong"] = "雀魂",
  [":riichi_mahjong"] = desc,
}

return mode

